Storage system and storage device system

ABSTRACT

Under a hetero-environment in which different sorts of disk-systems are mixed with each other, a data guaranteeing operation can be carried out. When a cache controller of a local disk system receives a data writing request from a host computer the cache controller stores data into a local disk provided in a disk device group. The data received from the host computer is also transmitted to a remote disk system, and is stored in a remote disk. The data stored in the remote disk is immediately read and the data written in the remote disk is compared with the data written in the local disk. As a result, since a data guarantee operation on the remote side is processed by the local disk system instead of the remote disk system, a data guaranteeing operation when a remote copying operation is performed can be carried out even in the storage system under a hetero-environment.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application relates to and claims priority from Japanese PatentApplication No. 2003-270619, filed on Jul. 3, 2003, the entiredisclosure of which is incorporated herein by reference.

BACKGROUND OF THE INVENTION

The present invention is related to a storage system and a storagedevice system that are capable of executing a remote copying operationbetween, for example, different sorts of a main storage device systemand a sub-storage device system.

For instance, in basic business-purpose database systems of the typethat are capable of handling large storage capacities of data, the datais managed by employing storage device systems which are independentlyarranged with respect to host computers. This storage device system isalso referred to as a “disk array apparatus”, which disk array apparatusis constituted by arranging a large number of disk storage devices inthe form of an array. A storage device system is configured on thebasis, for example, of RAID (Redundant Array of Independent InexpensiveDisks) technology. On a physical storage area owned by a storage devicesystem, a logical volume corresponding to a virtual storage area Isformed. A business-purpose application program, that is operable on ahost computer, can read or write desirable data by issuing either awrite command having a predetermined format or a read command having apredetermined format to a storage device system.

For example, a description will be made of a case in which data iswritten. In this example, the result of a data operation by a hostcomputer has been temporarily stored in a buffer of the host computer.When a series of data operations by the host computer is accomplishedand the job is ended (commitment in unit of transaction), the hostcomputer transmits a data writing request (write command) to a storagedevice system in order to update the database. This writing requestcontains one or more pieces (normally, a large number) of data which areto be written into the storage device system. Upon receipt of the datawriting request from the host computer, the storage device system storesthe data contained in this writing request into a cache memory. Afteraddresses of the data stored in the cache memory are converted, theaddress-converted data is stored into a predetermined area of apreselected disk device. When the data which is required to be writtenhas been stored in the predetermined area, the storage device systemreports a writing operation completion to the host computer.

In this case, the storage device system can maintain the security of thedata by causing the data to be distributed into a plurality of diskstorage devices so as to increase the redundancy. Furthermore, thestorage device system may execute a remote copying operation in whichthe same data is copied and held in storage device systems installed atphysically separated remote places in order to take precautions againsta disaster, such as an earthquake. In a remote copying operation, whilea plurality of storage device systems, which are located underphysically separated conditions, are connected via either a private lineor a public line to each other, data is directly copied among therespective storage device systems without involving a host computer. Asa consequence, a main logical volume formed in a copy-source storagedevice system (to be referred to as “local-sided storage device system”hereinafter) corresponds to a sub-logical volume formed in acopy-destination storage device system (to be referred to as“remote-sided storage device system “hereinafter) in an one-to-onecorresponding relationship, and these main and sub-logical volumes holddata having the same contents relative to each other. Accordingly, evenin a case in which either all of the data or partial data of thelocal-sided storage device system is lost due to a disaster and thelike, the host computer can execute a data processing operation byemploying the data of the sub-logical volume of the remote-sided storagedevice system. It should be understood that a storage device system isdesigned in such a manner that a data backup operation is carried out ineither a periodic manner or an irregular manner in addition to a remotecopying operation, and, thus, the storage device system can restore thedata up to a predetermined point in time based upon both backup data andjournal data.

Remote copying operations may be mainly classified-as a synchronous typeremote copying operation and an asynchronous type remote copyingoperation. In the case of a synchronous type remote copying operation,when a data writing request issued from a host computer is transmittedto a local-sided storage device system, the local-sided storage devicesystem stores the received data (namely, data which is required to bewritten) into a cache memory, and, thereafter, it transfers the data viaa communication line to a remote-sided storage device system. When theremote-sided storage device system receives the data and stores thereceived data into a cache memory, the remote-sided storage devicesystem transmits a response signal indicative of the data reception tothe local-sided storage device system. When the local-sided storagedevice system receives the response signal from the remote-sided storagedevice system, the local-sided storage device system communicates awriting operation completion report that the data writing operation hasbeen carried out under a normal condition to the host computer.

As explained above, in the synchronous type remote copying operation,both the data writing request issued from the host computer and the datatransfer operation to the remote-sided storage device system are carriedout in a synchronous manner. As a consequence, since such a delay timeis produced, which is caused when the local-sided storage device systemwaits for the response sent from the remote-sided storage system in thesynchronous type remote copying operation, this synchronous type remotecopying operation is suitable for a case in which the distance betweenthe local-sided storage device system and the remote-sided storagedevice system is a relatively short distance. Conversely, in a case inwhich the distance between a local-sided storage device system and aremote-sided storage device system is a long distance, generallyspeaking, the synchronous type remote copying operation is not suitablefor use because of a delay response problem and a delay transferproblem.

On the other hand, in the case of an asynchronous type remote copyingoperation, when the local-sided storage device system receives a datawriting request from the host computer, the local-sided storage devicesystem stores the received data into the cache memory, and then itimmediately communicates a writing operation completion report to thehost computer. After the local-sided storage system sends the writingoperation completion report to the host computer, this local-sidedstorage device system transfers the data to the remote-sided storagedevice system. In other words, the writing operation completion reportto the host computer and the data transfer operation to the remote-sidedstorage device system are carried out in an asynchronous manner. As aconsequence, in the case of an asynchronous type remote copyingoperation, the writing operation completion report can be quicklytransmitted to the host computer irrespective of the distances betweenthe respective storage device systems. Accordingly, this asynchronoustype remote copying operation is suitable for a case in which thedistance between the respective storage device systems is a relativelylong distance. Conversely, since the data transfer operation to theremote storage device system has not yet been carried out at a time whenthe writing operation completion report to the-host computer is carriedout, it is not guaranteed that the storage content of the main logicalvolume is identical to the storage content of the sub-logical volumeeven when the writing operation completion report is sent.

On the other hand, as one technique that is capable of improving thereliability of a storage device system, the storage device system cancorrectly store data in accordance with a data writing request made by ahost computer and also can correctly read data in accordance with a datareading request made by the host computer. To this end, the storagedevice system employs such techniques, for example, as LRC (LongitudinalRedundancy Check), CRS (Cyclic Redundancy Check), and ECC(Error-Correcting Code) in order to prevent bit errors that tend tooccur during a data transfer operation. However, since a plurality ofdisk storage devices are operated in a parallel mode so as toinput/output data in the storage-device system, a predetermined addressconverting operation is carried out and the data is subdivided, and thenthe subdivided data is processed. As a result, it is difficult inpractice to properly process abnormal addresses of subdivided data. As aconsequence, such a guarantee technique has been proposed (refer toJP-A-2000-347815). That is, when a guarantee code, such as a transfersource address that is capable of specifying data to be transferred, isadded to the data, a guarantee can be made as to whether or not the datacan be correctly transferred within the storage device system.

In the above-described conventional technique, since the guarantee ismade as to whether or not the data transfer operation has been correctlycarried out within the storage device system by adding a guarantee codeto the data, if a storage system is operable by employing a singlestorage device system, then the data guaranteeing operation may besufficiently carried out. However, under a so-called“hetero-environment” in which different sorts of storage device systemsare mixed with each other, there are many possibilities that the dataguaranteeing systems are different from each other between therespective storage device systems, and also, even when similar dataguaranteeing systems are employed, the detailed structures of the dataguarantee codes and the detailed verifying methods employed aredifferent from each other. As a consequence, it is difficult in practiceto guarantee as to whether or not data which has been transferred from acertain storage device system to another storage device system iscorrectly stored, or it is difficult to guarantee as to whether or notdata which has been read from a certain storage device system to anotherstorage device system corresponds to correct data. In this connection,the above-described hetero-environment implies, for instance, anenvironment in which plural sorts of storage device systems whosesuppliers are different from each other are mixed with each other. Forexample, this hetero-environment implies a storage environment in which,although basic functions related to data input/output operations ofdifferent sorts of storage device systems are commonly used in thesestorage device systems, the peripheral support functions thereof, suchas the guarantee functions during data transfer operations, aredifferent from each other, and these different sorts of storage devicesystems are mutually connected so as to be operated together in asystem.

In a case in which a single storage system is configured only by aplurality of storage device systems which are provided by the samesupplier, the above-explained error correcting technique above, such asLRC, is sufficient as a bit error preventing technique, and also, noconsideration has been made as to whether or not the data transferredbetween the respective storage device systems is correctly stored, andwhether or not the data transferred between the respective storagedevice systems corresponds to correctly read data. Also, since thesupplier is familiar with the internal constructions of the respectivestorage systems, even in a case in which the versions and processingperformance of the respective storage device systems are different fromeach other, the data transferred between the respective storage devicesystems may be guaranteed in a relatively simple manner, if necessary.

However, under the hetero-environment in which plural sorts of storagedevice systems whose suppliers are different from each other are mixedwith each other, it is difficult to guarantee as to whether or not thedata transferred between the storage device systems of the respectivesuppliers corresponds to the correct data, except for a case in whichthe respective different suppliers employ the same data guaranteesystem. The reason for this is given as follows: That is, a dataguarantee system which is employed by a certain supplier cannot bedirectly applied to another storage device system supplied by anothersupplier. Also, the internal structure of a storage device system whichis supplied by another supplier cannot be freely altered. As aconsequence, under a hetero-environment the reliability of the datawhich is transferred among the storage device systems whose technicalspecifications and performance are different from each other cannot besufficiently secured, and, therefore, improvements in the datareliability are required.

SUMMARY OF THE INVENTION

The present invention has been made to solve the above-describedproblems, and, therefore, it has an object to provide both a storagesystem and a storage device system that are capable of guaranteeing datathat has been transferred between respective storage device systems insuch a storage system in which different sorts of storage device systemsare mixed with each other.

Another object of the present invention is to provide a storage systemin which an operation of a storage device system having a low functioncan be carried out by a storage device system having a high function,instead of this storage device system having the low function, in astorage system in which plural sorts of storage device systems areconnected to each other, the support functions of which are differentfrom each other. Further objects of the present invention will becomemore apparent from the following description of various embodiments.

To solve the above-described problems, a storage system, according tothe present invention, is arranged by connecting a main storage systemto a sub-storage system, which is of a different sort from that of themain storage system, for transmitting/receiving data between an uppergrade apparatus and its own storage system; in which: the main-storagedevice system comprises: receiving means for receiving a data writingrequest from the upper grade apparatus; data holding means for holdingdata which is required to be written in response to the received datawriting request; transferring means for transferring the data which isrequired to be written to the side of the sub-storage system in responseto the received data writing request, and data guaranteeing means forguaranteeing as to whether or not the data held on the side of thesub-storage system corresponds to correct data.

The main storage device system holds a main data group which is used bythe upper grade apparatus, whereas the sub-storage device system holds asub-data group which is produced by copying the main data group in aone-to-one corresponding relationship. The main storage device systemand the sub-storage device system are supplied by, for example, separatesuppliers (manufacturers) and are of different sorts from each other. Adifference in sorts implies a case in which there is a difference as toat least the data guarantee functions between the respectivemain/sub-storage device systems.

When the main storage device system receives the data writing requestfrom the upper-grade unit, the main storage device system holds thereceived data in its own system and also transfers the received data tothe sub-storage device system. Furthermore, the main storage devicesystem verifies whether or not the data held by the sub-storage devicesystem corresponds to the correct data by use of the data guaranteeingmeans and guarantees the data. In other words, the main storage devicesystem verifies as to whether or not the data transferred to thesub-storage device system is held therein in the correct manner, orwhether or not the data read out from the sub-storage device systemcorresponds to the correct data, and it guarantees the data.

As previously explained, in the storage system according to the presentinvention, the main storage device system may execute a dataguaranteeing operation of the sub-storage device system instead of thissub-storage device system. As a consequence, in a case in which the mainstorage device system is connected to the sub-storage device systemwhich is of a different sort from that of the main storage devicesystem; more specifically, even in a case in which the main storagedevice system is connected to a sub-storage device system which is notequipped with a data guarantee function usable by the main storagedevice system, the main storage device system can guarantee the datawhich is transferred to the sub-storage device system and can improvethe reliability of the storage system.

In connection therewith, the above-explained case, in which, thesub-storage device system is not equipped with a data guarantee functionthat is usable by the main storage device system, may involve a case inwhich the sub-storage device system is not originally equipped with adata guarantee function. It should be noted that the writing operationcompletion report to the upper grade apparatus may be sent at the sametime when the data is transferred to the sub-storage device system inresponse to the data guarantee method (namely, a synchronous processingoperation), or it may be sent irrespective of the data transferoperation to the sub-storage device system (namely, an asynchronousprocessing operation).

In accordance with an aspect of the present invention, theabove-described data guaranteeing means executes a data guaranteeingoperation in such a manner that the data which has been transferred tothe sub-storage device system is read out from the sub-storage devicesystem, and the read data is compared with the data held in the dataholding means.

In other words, for example, after the data has been transferred fromthe main storage device system to the sub-storage device system, sincethis transferred data is read from the sub-storage device system so asto be identified with respect to the original data, the main storagedevice system may verify whether or not the data is being correctly heldin the sub-storage device system, and then it may guarantee the data.The sub-storage device system may be merely equipped with a function inwhich this sub-storage device system holds the data transferred from themain storage device system; and, it transfers the data in response tothe read request issued from the main storage device system, and, thus,it need not be additionally equipped with a new function used toguarantee the data.

In accordance with another aspect of the present invention, theabove-described data guaranteeing means comprises: guarantee codeproducing means for producing a guarantee code based upon the data whichis required to be written in a case in which the receiving meansreceives a data writing request; guarantee code holding means forholding the produced guarantee code; extracting means for extracting aguarantee code based upon the data read out from the sub-storage devicesystem and comparing means for performing a data guaranteeing operationby comparing the guarantee code held by the guarantee code holding meanswith the guarantee code extracted by the extracting means.

In other words, when the main storage device system receives a datawriting request from the upper grade apparatus, the main storage devicesystem produces a guarantee code based upon the data which is requestedto be written. This guarantee code is based upon an attribute (forexample, logical address and error-correcting redundant code) of thedata which is requested to be written. The produced guarantee code isheld only in the main storage device system, and only the data istransferred to the sub-storage device system. In the case in which thedata is read out from the sub-storage device system, the guarantee codeis extracted based upon this read data, and then, this extractedguarantee code is compared with the guarantee code which has been heldin the main storage device system. In the case where the two sets of theguarantee codes for the main system side and the sub-system side arecoincident with each other, the data guaranteeing means indicates thatthe data transfer operation has been carried out in the correct manner;whereas, in the case where the two guarantee codes for the main systemside and the sub-system side are not coincident with each other, thedata guaranteeing means can judge that an error has occurred.

In accordance with a further aspect of the present invention, theabove-explained data guaranteeing means comprises: guarantee codeproducing means for producing a guarantee code based upon the data whichis required to be written in the case in which the receiving meansreceives a data writing request; guarantee code holding means forholding the produced guarantee code; transferring means, which isoperated in such a manner that, while both the produced guarantee codeand the data which is required to be written are related to each otheras data to which a guarantee code is attached, the data with theattached guarantee code is transferred to the sub-storage device systemby the transferring means; extracting means for extracting the guaranteecode from the data with the attached guarantee code read out from thesub-storage device system; and comparing means for executing a dataguarantee operation by comparing the guarantee code held by theguarantee code holding means with the guarantee code extracted by theextracting means.

In other words, when the main storage device system receives a datawriting request from the upper grade apparatus, the main storage devicesystem produces a guarantee code based upon the received data, and itholds this produced guarantee code. Furthermore, the main storage devicesystem causes the produced guarantee code to be related to the receiveddata so as to form “data appended with a guarantee code”, and thentransfers this data with the appended guarantee code to the sub-storagedevice system. Then, the main storage system reads the data attachedwith the appended guarantee code from the sub-storage device system, andextracts the guarantee code from this read data. The data guaranteeingmeans judges as to whether or not the data has been correctly held inthe sub-storage device system by comparing the guarantee code which isextracted from the data to which the guarantee code read out from thesub-storage device system is appended with the guarantee code which hasbeen held in the main storage device system, and in this way it canguarantee the data.

In this case, the above-described data with the appended guarantee codemay be constituted in such a manner that this data is recognized as thedata which is required to be written. In other words, while theguarantee code is not appended to the outside of the received data fromthe upper grade apparatus, the guarantee code is combined with thereceived data in an internal form. As a result, the data with theappended guarantee code pretends to be received data from the uppergrade apparatus. As a consequence, in a case in which the data length ofreceived data is previously fixed to a predetermined value (for example,512 bits), the data length of the received data becomes longer than thestandard data length by such a data length used to combine this receiveddata with the guarantee code in an integral form.

In accordance with another aspect of the present invention, theabove-described storage system is comprised of data guarantee selectingmeans for controlling the operation of the data-guaranteeing means. Inthis connection, the controlling operation for controlling the operationof the data guaranteeing means involves both a selecting operation as towhether or not the data guaranteeing operation is parried out by thedata guaranteeing means, and the mode selecting operation executed incase the data guaranteeing operation is carried out. Also, such aselection may be alternatively made in a case in which the dataguaranteeing operations are carried out in different modes for everysub-storage device system.

In the storage system according to the present invention, since the dataguaranteeing operation of the sub-storage device system is also carriedout on the side of the main storage device system in a batch manner, thework load processed by the main storage device system is increased. As aconsequence, the data guaranteeing operations are not uniformly carriedout with respect to all of the sub-storage device systems whichconstitute the storage system, but it is preferable that the dataguaranteeing operation may become active, if required, by consideringthe processing performance and the memory capacity of the main storagedevice system.

In accordance with another aspect of the present invention, the dataguaranteeing means is provided with a plurality of data guarantee modes;and the data guarantee selecting means selects at least any one of theplural data guarantee modes. That is to say, for example, while theprocessing performance and the memory capacity of the main storagedevice system are considered, the data guarantee mode may beautomatically selected, or it may be selected by a manual operation ofthe user. Also, the data guarantee mode may be alternatively selectedfor every application or every sub-storage device system. Since theproper data guarantee mode is set (involving a case in which the dataguaranteeing operation is not carried out), the storage system can beoperated with a higher efficiency while the reliability of this storagesystem is maintained.

The above-described data guaranteeing means is provided with at leasttwo or more guarantee modes, among which are: (1) a first guarantee modefor executing a data guaranteeing operation in such a manner that thedata which is required to be written is transferred to the sub-storagedevice system so as to be held therein, the data held in the sub-storagesystem is read, and the read data is compared with the data held in themain storage device system; (2) a second guarantee mode for performing adata guaranteeing operation in such a manner that the guarantee codeproduced based upon the data which is required to be written is held inthe main storage device system, and the guarantee code extracted fromthe data read out from the sub-storage device system is compared withthe guarantee code held in the main storage device system; and (3) athird guarantee mode for executing a data guaranteeing operation in sucha manner that the guarantee code produced based upon the data which isrequired to be written is held in the main storage device system, thedata attached with the guarantee code, which is constituted by relatingthe guarantee code to the data, is transferred to the sub-storage devicesystem so as to be held therein, and the guarantee code which isextracted from the data attached with the guarantee code read out fromthe sub-storage device system is compared with the guarantee code heldin the main storage device system.

In other words, the first guarantee mode executes a data guaranteeingoperation in such a manner that the data transferred to the sub-storagedevice system is immediately read therefrom, and this read data isidentified with respect to the data which is held in the main storagedevice system. This first guarantee mode can be realized by a simplearrangement, and it can be easily conducted, while the load processed bythe main storage device system is low. However, since the data is readso as to be identified with the held data every time the data istransferred to the sub-storage device system, the response to a writingrequest issued from the upper grade apparatus (namely, transmission ofwriting operation completion report) is delayed. As a result, this firstguarantee mode may become effective in a case in which the distancebetween the main storage device system and the sub-storage device systemis a relatively short distance, and also, in a case where there is alack of the processing performance by the main storage device system.Also, in the first guarantee mode, when the data is transferred to thesub-storage device system, namely at a point in time when the remotecopying operation is carried out in the sub-storage device system, thedata guaranteeing operation is carried out, whereas the dataguaranteeing operation is not carried out when the data is read out fromthe sub-storage device system. As a result, the reliability of the dataguaranteeing operation is relatively lowered.

In the second guarantee mode, the main storage device system produces aguarantee code based upon the data received from the upper gradeapparatus; and, then it manages the produced guarantee code andtransfers only the received data to the sub-storage device system. As aconsequence, the data guaranteeing operation can be carried out bycomparing the guarantee codes with each other when the data is read outfrom the sub-storage device system. Thus, the reliability of this secondguarantee mode may be higher than that of the first guarantee mode.However, since the guarantee codes must be managed on the side of themain storage device system, the work load processed by this main storagedevice system is increased mainly due to this management of theguarantee codes.

In the third guarantee mode, the guarantee code produced by the mainstorage device system is caused to be related to the data received fromthe upper grade apparatus so as to be formed as data with an appendedguarantee code, and then, this data with the appended guarantee code istransferred to the sub-storage device system so as to be held therein.Since the guarantee code has been added to the data, the highestreliability of the data guaranteeing operation ca be obtained. However,the storage capacity of the sub-storage device system is suppressed bythe capacity of the guarantee code added to the data. Also, since it ispretended that the entire data with the appended guarantee code mayconstitute data received from the upper grade apparatus, the guaranteecode is no longer separated from the data and the guarantee code is nolonger separately managed. However, the resulting data size is increasedonly by the guarantee code. There are some possibilities that the formatof this size-increased data becomes different from the format of thestorage area of the sub-storage device system. As a result, when thethird guarantee mode is applied to the existing storage area, atechnical concept must be adopted, for instance, wherein all of theexisting data are read from the existing storage area, and then, theformats of the read data are rearranged.

A storage system, according to another aspect of the present invention,is featured in that a plurality of different sorts of storage devicesystems are mixed with each other, and the support functions thereofrelated to data input/output operations are different from each other;in which a storage device system having a high function among the pluralsorts of storage device systems executes a predetermined supportfunction for a storage device system having a low function among theplural sorts of storage device systems, instead of the storage devicesystem having the low function.

The support function related to the data input/output operations impliesa function in which a basic function corresponding to data input/outputoperations is directly or indirectly supported. As this supportfunction, a data guarantee function may be conceived which may guaranteewhether or not correct data is handled when data is inputted and whendata is outputted. In a storage system which is constituted byconnecting a plurality of storage device systems to each other, thebasic data input/output functions of which are commonly used, there aresome cases in which secondary support functions are different from eachother for every storage device system because of, for example,differences which exist in the design concepts of the respectivesuppliers of these storage device systems. Also, there are differencesas to CPU performance and installed memory capacities of the storagedevice systems, and also as to program components installed in therespective storage device systems with respect to the suppliers thereof.Under such a circumstance, in the storage system according to thepresent invention, a storage device system having the high functionamong the different sorts of storage device systems executes apredetermined support function for the storage device system having thelow function, instead of the storage device system having the lowfunction. In other words, the predetermined support function employed inthe storage device system having the low function is executed by thestorage device system having the high function (high performance) andwhich is capable of supporting another storage device system. As aresult, the storage device system having the high function can mainlyperform the predetermined support function, and it can secure apredetermined reliability even under an environment in which pluralsorts of storage device systems are mixed with each other.

For example, the above-described storage device system having a highfunction is comprised of: judging means for judging whether or not apredetermined event for executing a predetermined support functionhappens to occur; and substituting process means operated in such amanner that in the case where the judging means judges that apredetermined event happens to occur, the predetermined support functionis executed by the storage device system having the high function,instead of the storage device having the low function.

The above-explained substituting process means executes thepredetermined support function by way of either a synchronous processingoperation or an asynchronous processing operation.

In this case, the synchronous processing operation implies that thetiming at which a predetermined event for executing a predeterminedsupport function occurs is substantially synchronized with the timing atwhich the predetermined support function is carried out. Theasynchronous processing operation implies that the occurrence of apredetermined event is not synchronized with the execution of apredetermined support function, but that they are carried out atseparate timings.

The above-described substituting process means executes thepredetermined support function without adding redundant data to the datarelated to the predetermined support function, or by adding redundantdata originated from the data related to the predetermined supportfunction to the data related to the predetermined support function.

For instance, there are some cases in which the substituting processmeans may execute a predetermined support function by changing a dataoperating method without adding any redundant data to data related tothe predetermined support function. Also, there is a certain case inwhich the substituting process means may perform a predetermined supportfunction by adding redundant data (for example, redundant dataoriginated from data) related to the predetermined support function.

In accordance with one aspect of the present invention, the storagesystem is provided with the above-described selecting means forselecting the operation modes of the substitution process operations ofthe predetermined support function by the substituting process means.

The operation modes also contain a case in which the substitutingprocess operation of the predetermined support function is not carriedout. Since the proper operation mode is selected by considering theprocessing performance and the memory capacity of the storage devicesystem having a high function, the storage system in which differentsorts of storage device systems are mixed with each other can beoperated with a higher efficiency, while the utility of this storagesystem is increased.

A storage device system, according to another aspect of the presentinvention, is featured by a storage device system connected to an uppergrade apparatus and different sorts of storage device systems,respectively, in which the storage device system is arranged to include:receiving means for receiving a data writing request from the uppergrade apparatus; data holding means for holding data which is requiredto be written in response to the received data writing request;transferring means for transferring the data which is required to bewritten to the side of different sorts of storage device systems inresponse to the received data writing request; and data guaranteeingmeans for guaranteeing whether or not the data held on the side of thedifferent sorts of storage device systems corresponds to correct data.

The above-described data guaranteeing means may execute the dataguaranteeing operation in such a manner that the data which has beentransferred to the different sorts of storage device systems is read outfrom said different sorts of storage device systems, and the read datais compared with the data held in the data holding means.

Also, the above-explained data guaranteeing means may comprises:guarantee code producing means for producing a guarantee code based uponthe data which is required to be written in case the receiving meansreceives a data writing request; guarantee code holding means forholding the produced guarantee code; extracting means for extracting aguarantee code based upon the data read out from the different sorts ofstorage device systems; and comparing means for performing a dataguaranteeing operation by comparing the guarantee code held by theguarantee code holding means with the guarantee code extracted by theextracting means.

Furthermore, the above-described data guaranteeing means may comprise:guarantee code producing means for producing a guarantee code based uponthe data which is required to be written in case the receiving meansreceives a data writing request; guarantee code holding means forholding the produced guarantee code; data-attached-with-guarantee-codetransferring means that is operated in such a manner that, while boththe produced guarantee code and the data which is required to be writtenare related to each other as data with an attached guarantee code, thedata with the attached guarantee code is transferred to the differentsorts of storage device systems by the transferring means; extractingmeans for extracting the guarantee code from the data with the attachedguarantee code that is read out from the different sorts of storagedevice systems; and comparing means for executing the data guaranteeoperation by comparing the guarantee code held by the guarantee codeholding means with the guarantee code extracted by the extracting means.

A program, according to a further aspect of the present invention, isfeatured by controlling a storage device system connected to an uppergrade apparatus and different sorts of storage device systems,respectively, in which the program realizes: a local-sided holdingfunction by which, in response to a data writing request received fromthe upper grade apparatus, data which is required to be written is heldin storage means; a transferring function by which, in response to thereceived data write request, the data which is required to be written istransferred to the different sorts of storage device systems so as to beheld therein; and a data guaranteeing function for guaranteeing whetheror not the data held in the different sorts of storage device systemscorresponds to correct data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the overall arrangement of a storagesystem according to a first embodiment of the present invention.

FIG. 2 is a block diagram showing a major unit of a local disk system.

FIG. 3 is a time chart illustrating the overall operation of the storagesystem.

FIG. 4 is a block diagram illustrating the overall arrangement of astorage system according to a second embodiment of the presentinvention.

FIG. 5 is a block diagram showing a major unit of a local disk system.

FIG. 6 is a diagram schematically showing a condition of a judgingoperation based upon a guarantee code.

FIG. 7 is a time chart illustrating the overall operation of the storagesystem.

FIG. 8 is a block diagram illustrating the overall arrangement of astorage system according to a third embodiment of the present invention.

FIG. 9 is a diagram schematically showing a condition of judgingoperations based upon a guarantee code.

FIG. 10 is a time chart illustrating the overall operation of thestorage system.

FIG. 11 is a flow chart showing a selecting process operation of a dataguarantee mode according to a fourth embodiment of the presentinvention.

FIG. 12 is a time chart showing the overall operation of a storagesystem according to a fifth embodiment of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring now to FIG. 1 to FIG. 12, various embodiments of the presentinvention will be described.

Embodiment 1

A first embodiment of the present invention will be described withreference to FIG. 1 to FIG. 3. A storage system according to thisembodiment is made up of a main storage device system 10 connected to asub-storage device system 40, which is of a different sort from that ofthe main storage system 10, both of which are utilized by a hostcomputer 1.

The host computer 1 corresponds to a computer system equipped with, forexample, a CPU (Central Processing Unit), a memory, and the like. Sincethe CPU of the host computer 1 executes various sorts of programs,various sorts of functions are realized. The host computer 1 isprovided, for instance, in the form of a personal computer, aworkstation, or a main frame computer.

A certain host computer 1 may be connected via a LAN (Local AreaNetwork) 2 to the storage device system 10. Also, another host computer1 may be alternatively connected via an SAN (Storage Area Network) 3 tothe storage device systems 10 and 40, respectively. Also, the hostcomputer 1 may be alternatively and directly connected via a privateline (not shown) to the storage device system 10.

The LAN 2 may be realized as, for example, a network, such as theInternet, or an exclusively-used network. Data communication is executedvia the LAN 2 in accordance with, for example, the TCP/IP (TransmissionControl Protocol/Internet Protocol) protocol. Since the host computer 1connected to the LAN 2 transmits a predetermined command with respect tothe storage device system 10, the host computer 1 can execute a dataaccess request by designating a file name (data input/output request inthe unit of a file).

The SAN 3 is employed so as to transmit/receive data, while a blockcorresponding to a data management unit of a storage area provided byeither a disk device-group 30 or another disk device group 60 is used asa unit. In general, a communication which is executed via the SAN 3 iscontrolled in accordance with a fiber channel protocol. The hostcomputer 1 connected to the SAN 3 issues a data access request in theunit of a block in accordance with the fiber channel protocol.

Although only a “SAN 3”-sided arrangement is illustrated, a backupapparatus 4 is connected to each of the LAN 2 and the SAN 3. As thebackup apparatus 4, for instance, disk-system storage devices, such asan MO (Magneto-Optical) storage device, a CD-R (CD-Recordable compactdisk), a DVD-RAM (Digital Versatile Disk-RAM) may be used, andtape-system storage devices, such as a DAT (Digital Audio Tape), acassette tape, an open reel tape, and a cartridge tape may be employed.Since the backup apparatus 4 is able to communicate with the disk devicegroup 30, data which has been stored in the disk device group 30 may beduplicated as backup data in either a periodic manner or an irregularmanner.

This storage system is provided with the storage device systems 10 and40, which are of a different sort from each other. Although this storagesystem may be alternatively constituted by larger numbers of storagedevice systems, for the sake of easy explanation, a storage systemhaving two sets of storage device systems 10 and 40 will now beconsidered as an example.

One storage device system 10 corresponds to a local disk system (primarysite) which is installed in proximity to the host computer 1, and a mainlogical volume is logically formed in the disk device group 30 of thislocal disk system. The other storage device system 40 corresponds to aremote disk system (secondary site) which is installed at a place remotefrom the local disk system, and a sub-logical volume corresponding tothe main logical volume is formed in the disk device group 60 of thisremote disk system.

It should be understood that the main storage device system 10 will bereferred to as a “local disk system”, whereas the sub-storage devicesystem 40 will be referred to as a “remote disk system” hereinafter. Inthis connection, the suppliers (manufacturers) of the respective localdisk system 10 and remote disk system 40 are assumed to be differentfrom each other, and the basic specifications thereof related to datainput/output operations are commonly available. However, the supportfunctions, such as data guarantees of the local disk system 10 and theremote disk system 40, are different from each other. In other words,the storage system shown in this drawing constitutes ahetero-environment in which the disk systems 10 and 40, which are ofdifferent sorts from each other, are mixed with each other in thestorage system.

First, a description will be given of the arrangement of the local disksystem 10. The local disk system 10 is mainly separated into a controlapparatus 20 and a plurality of disk device groups 30, which arecontrolled by the control apparatus 20. As will be explained later, thecontrol apparatus 20 may be arranged by employing an MPU (MicroprocessorUnit) 21, one or more channel control units 22, a connection unit 23, aplurality of disk control units 24, a shared memory 25, a cache memory26, and a cache controller 27. The control apparatus 20 controls thedisk device groups 30 in response to various sorts of commands which arereceived from the host computer 1. For instance, when the controlapparatus 20 receives an input/output request of data from the hostcomputer 1, the control apparatus 20 executes input/output processing ofdata stored in the disk device groups 30. A logical volume (LogicalUnit) corresponding to a logical storage area has been set on a physicalstorage area, which is provided by a plurality of disk storage devices31, which are equipped in each of the disk device groups 30.

The MPU 21 is mutually connected to various circuits such as therespective channel control units 22, the respective disk control units24, the shared memory 25, the cache controller 27, and the like by wayof an internal LAN (not shown). Since the MPU 21 reads program codesstored in a program memory (not shown) and then executes the readprogram codes, the MPU 21 controls the overall operation of the controlapparatus 20. Also, a console 28 is connected to the MPU 21, and itbecomes a man-to-machine interface of the local disk system 10. A usermay select data guarantee modes (to be discussed later) via the console28.

Each of the channel control units 22 is used to establish datacommunication between the control apparatus 20 and a respective one ofthe host computers 1. Each of the channel control units 22 has acommunication interface which is used to communicate with the hostcomputer 1 that is connected to each of these channel control units 22.Also, each of the channel control units 22 is equipped with a commandprocessor function, and this command processor functioninterprets/processes various sorts of commands which are received fromthe host computer 1. Network addresses (for example, IP addresses) havebeen allocated to the respective channel control units 22 in order toindividually identify these channel control units 22. The respectivechannel control units 22 may individually behave as NASs (NetworkAttached Storages). As a consequence, the respective channel controlunits 22 individually accept data input/output that are requests issuedfrom the respective host computers 1. The respective channel controlunits 22 are realized by hardware circuits, software, and the like.

The connection unit 23 is arranged as a high speed bus, such as, forinstance, an ultra-high speed crossbar switch which performs a datatransfer operation by a high speed switching operation. The connectionunit 23 is mutually connected to the respective channel control units22, the respective disk control units 24, the shared memory 25, and thecache controller 27. The transmitting/receiving of data and commandsamong the respective channel control units 22, the respective diskcontrol units 24, and the cache controller 27 are carried out via theconnection unit 23.

The respective disk control units 24 control the respective disk devicegroups 30. For instance, a disk control unit 24 writes data at apredetermined address of a disk device group 30 in response to a writerequest which is received by the channel control unit 22 from the hostcomputer 1. Also, the disk control unit 24 converts a data accessrequest of a logical volume to a data access request with respect to aphysical disk by converting a logical address into a physical address.Furthermore, in case the disk device groups 30 are managed by way ofRAID arrangement, the disk control unit 24 executes a data accessoperation in accordance with a RAID structure. Also, the disk controlunit 24 performs a duplication managing control operation and a backupcontrol operation as to data which has been stored in the disk devicegroups 30. Furthermore, the disk control unit 24 executes anothercontrol operation (referred to as either replication function or remotecopy function) under which data is also stored into another storagedevice system 40 added thereto in order to prevent data disappearancewhen a disaster happens to occur (disaster recovery).

Both the shared memory 25 and the cache memory 26 correspond to storagememories which are commonly used by the respective channel control units22, the respective disk control units 24, and the like. While controlinformation, commands, and the like are mainly stored into the sharedmemory 12, this shared memory 12 is used as a work area and the like.The cache memory 26 is mainly used so as to store thereinto datareceived from the host computer 1 and data read out from the disk devicegroups 30. In the case that, for example, the channel control unit 22receives a write request command from the host computer 1, the channelcontrol unit 22 writes this write request command into the shared memory25, and it writes write data received from the host computer 1 into thecache memory 26. On the other hand, the disk control unit 24 monitorsthe shared memory 25. When the disk control unit 24 detects that a writecommand is written into the shared memory 25, this disk control unit 22reads write data from the cache memory 26 in response to this writecommand, and then writes the read data into the disk device group 30.

The cache controller 27 manages input/output operations of data withrespect to the cache memory 26. The respective channel control units 22and the respective disk control units 24 perform data writing operationsand data reading operations via the cache controller 27 with respect tothe cache memory 26. Although a detailed operation will be explainedlater with reference to FIG. 2, in this embodiment, data which is copiedto the remote disk system 40 is guaranteed in the cache controller 27.However, the present invention is not limited to this guaranteeoperation. For example, it is also possible that the MPU 21 may in thealternative perform a data guarantee operation, or the channel controlunit 22 may in the alternative execute a data guarantee operation.

Next, the console 28 will now be explained. When a user enters aninstruction via the console 28 to the MPU21, this MPU 21 executes anenvironment setting operation of the local disk system 10 in response tothe instruction sent from the user. Also, various sorts of statusinformation and the like of the local disk system 10 are provided to theuser via the screen of the console 28. More particularly, since the usermanipulates the console 28, the user may set a logical volume, mayincrease or decrease the disk storage devices 31, and may change theRAID structure. Also, the user may confirm an operating condition of thelocal disk system 10 and may monitor the occurrence of a disaster viathe screen of the console 28.

The disk device group 30 is constituted by a large number of diskstorage devices 31 arranged in an array shape, and it may providestorage areas which are managed by RAID with respect to the hostcomputer 1. As the disk storage device 31, for instance, various sortsof devices, such as hard disk devices, flexible disk devices, andsemiconductor storage devices, may be employed. As indicated in FIG. 1,the respective disk control units 24 may be directly connected to therespective disk device groups 30. Otherwise, the respective disk controlunit 24 may be indirectly connected via a network to the respective diskdevice groups 30. Alternatively, both the disk device groups 30 and thedisk control units 24 maybe constituted in an integral form. A logicalvolume set to a disk device group 30 contains a user disk, which can beaccessed from the host computer 1, and a system disk, which is used soas to control the channel control unit 22. Alternatively, a singlelogical volume may be allocated to each of the channel control units 22.Further, a single-logical volume may be alternatively and commonly usedby a plurality of channel control units 22.

Next, a description will be given of the remote disk system 40. Theremote disk system 40 is installed at a place which is remote from thelocal disk system 10, while the respective remote and local disk systems40 and 10 are connected via the SAN 3 to each other. The remote disksystem 40 is utilized as a data replicating destination apparatus due toa remote copy function (otherwise replication function), which has beenstored in the disk device group 30 of the local disk system 10. Itshould be understood that the local disk system 10 and the remote disksystem 40 may be so arranged that both the disk systems 10 and 40 areconnected not only via the SAN 3, but also via a communication line, forexample, by ATM (Asynchronous Transfer Mode), or the like. It shouldalso be understood that in the drawings, there are some possibilitiesthat a local disk system is abbreviated as a “local system”, and aremote disk system is abbreviated as a “remote system.”

As previously explained, since the remote disk system 40 is provided bya different supplier from the supplier of the local disk system 10, thesorts of the respective disk systems 0 and 40 are different from eachother. As a consequence, there is a certain case in which the remotedisk system 40 has a completely different structure from the structureof the local disk system 10. However, in this embodiment, for the sakeof easy explanation, it is assumed that this remote disk system 40 has asimilar structure to that of the local disk system 10.

The remote disk system 40 is equipped with, for example, a controlapparatus 50, and a disk device group 60 which is controlled by thecontrol apparatus 50. The control apparatus 50 may be equipped with, forinstance, an MPU 51, a channel control unit 52, a connection unit 53, adisk control unit 54, a shared memory 55, and a cache memory 56. Simplyspeaking, the MPU 51 controls the entire arrangement of the remote disksystem 40. The channel control unit 52 performs data communicationvia—the SAN 3.—The connection unit 53 executes connecting operationsamong the channel control unit 52, the disk control unit 54, the sharedmemory 55, and the cache memory 56. The disk control unit 54 executes adata input/output operation between its own disk control unit 54 and thedisk device group 60. Various sorts of control information and the likeare stored in the shared memory 55. Data and the like, which aretransferred from the local disk system 10, are stored in the cachememory 56. The disk device group 60 is constituted by a plurality ofdisk storage devices. Sub-logical volumes corresponding to main logicalvolumes have been set to physical storage areas which are provided byeach of the disk storage devices.

Data which has been transferred from the local disk system 10 via theSAN 3 to the remote disk system 40 when a remote copying operation iscarried out is stored into the cache memory 56. The data which has beenstored in the cache memory 56 is stored into the disk device group 60after an address of this data is converted by the disk control unit 54.On the other hand, in the case where a data read request is issued fromthe local disk system 10, the disk control unit 54 reads out data fromthe disk apparatus group 60 and stores the read data into the cachememory 56. The data which has been stored in the cache memory 56 istransmitted from the channel control unit 52 via the SAN 3 to the localdisk system 10.

In this storage system, the remote disk system 40 is merely capable ofexecuting a basic data input/output function in which data transmittedfrom the local disk system 10 is stored, and data which is required bythe local disk system 10 is transmitted. As will be discussed later, adata guarantee function for verifying whether or not data received fromthe local disk system 10 has been correctly stored (namely, whether ornot address failure happens to occur) is mainly handled by the localdisk system 10.

Next, referring to FIG. 2, the function of the cache controller 27employed in the local disk system 10 will be explained. FIG. 2 is ablock diagram of a major unit in which the cache controller 27 is mainlylocated, and from which the channel control unit 22, the disk controlunit 24, and the like have been omitted. As will be explained later, thecache controller 27 is provided with a local disk writing unit 101, aremote disk writing unit 102, a remote disk reading unit 103, and awrite judging unit 104. In the following description, there is a certaincase in which a main logical volume of the local disk system 10 will bereferred to as a “local disk”, and a sub-logical volume of the remotedisk system will be referred to as a “remote disk.”

In response to a data writing request received via the channel controlunit 22 from the host computer 1, the local disk writing unit 101 writesreceived data into the cache memory 26. After an address of the datawritten in the cache memory 26 is converted by the disk control unit 24,the address-converted data is stored in a predetermined area of the diskdevice group 30. When the data writing operation to the local disk iscompleted, the remote disk writing unit 102 transmits data received fromthe host computer 1 via the SAN 3 to the remote disk system 40 so as tostore this transmitted data into the cache memory 56. After the addressof the stored data in the cache memory 56 of the remote disk system 40is converted by the disk control unit 54, the address-converted data isstored in the remote disk. When the data writing operation into theremote disk is carried out, the remote disk reading unit 103 immediatelyreads, via the SAN 3 and the like, the data which has just been held inthe remote disk. The data read from the remote disk is inputted from theSAN 3 to the channel control unit 22 into the write judging unit 104.Also, the data which has been written in the local disk is inputted intothe data judging unit 104. As a result, the write judging unit 104compares the data written into the local disk with the data read fromthe remote disk just after the data has been transferred to the remotedisk, and it judges whether or not both data are identical to eachother. In the case where both data are identical to each other (in acase where both the contents and the logical addresses of data arecoincident with each other), the write judging unit 104 judges that thedata transfer operation to the remote disk has been carried out undernormal conditions, and performs a data guaranteeing operation.Conversely, in the case where both data are not coincident with eachother, the write judging unit 104 judges that the data transferoperation has not been carried out under normal conditions, andcommunicates an error message to the MPU 21. In case a normal datatransfer operation has not been carried out, data is again transferredto the remote disk system 40, and a check as to whether or not the datatransfer operation has been carried out under normal conditions is againperformed.

It should be noted that both the data writing operation to the localdisk and the data transferring operation to the remote disk may bealternatively carried out in a parallel processing mode. Alternatively,at such a time instant when data is held in the cache memory 56 of theremote disk system 40, it may be judged that a data writing operation tothe remote disk has been carried out. Furthermore, an address convertingprocess executed in the disk control unit 24 may be executed by thecache controller 27.

The flow of operations as to the above-described process will now beexplained based upon a time chart of FIG. 3. First, the host computer 1transmits a data write request to the local disk system 10 (S1). Thisdata write request contains both data and a logical address, whichdesignates a predetermined storage area of the local disk.

When the local disk system 10 receives the data write request via theSAN 3 and the like from the host computer 1, the local disk system 10writes the received data via the disk control unit 24 and the like intoa predetermined storage area of the local disk (S2). Also, the localdisk system 10 requests a data writing operation with respect to theremote disk system 40 (S3). The remote disk system 40 stores the datareceived from the local disk system 10 into the cache memory 56, and itwrites the data into the predetermined storage area which is designatedby the logical address (S4). When the remote disk system 40 writes thedata into the predetermined storage area (otherwise, at a time instantwhen data is held in cache memory 56), the remote disk system 40transmits a write completion notification to the local disk system, 10(S5).

When the local disk system 10 receives the write completion notificationfrom the remote disk system 40, the local disk system 10 requests theremote disk system 40 to read the data which has been just written intothe remote disk (S6). When the remote disk system 40 receives a dataread request from the local disk system 10, the remote disk system 40reads out the data which has been just written (S7), and then sends theread data to the local disk system 10 (S8). The local disk system 10compares the data written in the local disk with the data read from theremote disk, and it judges whether or not both data are coincident witheach other (S9). When both the data are coincident with each other, thelocal disk system 10 judges that the data transfer operation has beencarried out under normal conditions, and then sends a write completionreport with to the host computer 2 (S10). In this embodiment, both thedata transfer operation from the local disk system 10 to the remote disksystem 40, and the sending of the write completion report from localdisk system 10 to the host computer 1 are carried out in synchronismwith each other. On the other hand, in the case where the data writteninto the local disk is not coincident with the data read from the remotedisk, the local disk system 10 judges that a normal data transferoperation has not been carried out, and the process operation isreturned to the step S3 in which the local disk system 10 againtransmits data to the remote disk system 40.

While this embodiment has been described in detail, even in a storagesystem case in which the local disk system 10 and the remote disk system40 are mixed with each other, the suppliers of which are different fromeach other and the installed functions of which are different from eachother, the data guarantee processing operation of the remote disk system40 can be carried out on the side of the local disk system 10. As aconsequence, even in the storage system that is under a so-called“hetero-environment”, the data guarantee function can be realized andthe reliability can be increased.

Also, in this embodiment, since the storage system is arranged such thatthe data which has been transferred to the remote disk system 40 isimmediately read so as to be compared with the data held in the localdisk system 10, the data guarantee processing operation of the remotedisk system 40 can be realized with employment of a simple arrangement.Also, since the load processed by the local disk system 10 may becomerelatively small, even in a case in which there is a small spareresource in the computer resource (processing performance, memorycapacity and soon) of the local disk system 10, the data guaranteeprocessing operation of the remote disk system 40 can be carried out bythe local disk system 10 instead of the remote disk system 40, so thatthe reliability of the storage system can be increased.

In accordance with another aspect, the data guarantee processingoperation corresponding to one sort of the support functions related tothe data input/output operations is carried out by the local disk system10 having a high function, instead of by the remote disk system 40having a low function. As a result, the computer resources of therespective storage device systems which constitute the storage systemcan be effectively utilized, so that the reliability of the entirestorage system can be increased.

Embodiment 2

Next, a second embodiment of the present invention will be explainedwith reference to FIG. 4 to FIG. 7. This embodiment is featured by thefact that a guarantee code is produced based upon data received from ahost computer 1, the guarantee code is managed on the side of a localdisk system, and only the data is transferred to the side of a remotedisk system.

As shown in a diagram of the overall system of FIG. 4 and also shown ina block diagram of a major unit thereof in FIG. 5, this embodiment isdifferent from the above-explained embodiment as to the technical pointthat, in the local disk system 10, a cache controller 110 is equippedwith a guarantee code setting unit 116. FIG. 5 is a block diagramshowing a major unit in which the cache controller 110 is mainlyemployed. The cache controller 110 may be arranged by employing, forexample, a local disk writing unit 111, a remote disk writing unit 112,a remote disk reading unit 113, a guarantee code setting unit 114, aguarantee code extracting unit 115, and a guarantee code judging unit116.

In response to a data writing request issued from the host computer 1,the local disk writing unit 111 stores received data into the cachememory 26. The data stored in the cache memory 26 is stored into a localdisk by the disk control unit 24. The remote disk writing unit 112transmits the data received from the host computer 1 via the SAN 3 tothe remote disk system 40, and then stores the transmitted data into thecache memory 56 provided on the remote side. In response to a datareading request, the remote disk reading unit 113 reads data from aremote disk.

The guarantee code setting unit 114 produces a guarantee code based upondata received from the host computer 1, and it sets the producedguarantee code in relation to the received data. A guarantee code isproduced based upon an attribute of the data received from the hostcomputer 1. In other words, a guarantee code may be produced based upona logical address and error correcting information (LRC etc.), forreceived data which is to be stored at this logical address. Theproduced guarantee code is stored into a guarantee code management table117 formed within the cache memory 26 in correspondence with thereceived data.

The guarantee code extracting unit 115 extracts (produces) a guaranteecode based upon data read out from the remote disk reading unit 113. Inother words, the guarantee code extracting unit 115 produces a guaranteecode based upon an attribute of the data read out from a remote diskreading unit in accordance with the same method as that of the guaranteecode setting unit 114. It should be noted that data which is stored intothe remote disk reading unit corresponds to a copy of the data which isstored into the local disk. As a consequence, in the case where a remotecopying operation is carried out under normal conditions, a local-sideguarantee code (original guarantee code) which is produced based upon anattribute of data to be stored into the local disk is identical to aremote-side guarantee code which is produced based upon an attribute ofdata to be stored into the remote disk reading unit. As a consequence,the guarantee code judging unit 116 compares a remote-side guaranteecode entered from the guarantee code extracting unit 115 with alocal-side guarantee code read from the guarantee code management table117, and thus judges whether or not the remote-side guarantee code iscoincident with the local-side guarantee code. In such a case that theremote-side guarantee code is coincident with the local-side guaranteecode, the guarantee code judging unit 116 judges that the data transferoperation (remote copying operation) has been carried out under normalconditions, and thus it can guarantee that the data can be read out fromthe remote disk reading unit under normal conditions. On the other hand,in case both the remote-side guarantee code and the local-side guaranteecode are not coincident with each other, since a failure happens tooccur in the data read from the remote disk reading unit, the guaranteecode judging unit 116 sends an error message to the MPU 21.

FIG. 6 is a schematic diagram for showing a condition in which aremote-side guarantee code (GC(R)) is compared with a local-sideguarantee code (GC(L)). As shown in FIG. 6 at (a), data “D1” read fromthe remote disk is not provided with a guarantee code. In other words,the guarantee code is not managed in the remote disk system 40. Asrepresented in FIG. 6 at (b), the guarantee code extracting unit 115produces a remote-side guarantee code (GC(R)) based upon the data “D1”read from the remote disk. On the other hand, as shown in FIG. 6 at (d),in the guarantee code management table 117, logical addresses “LA” andguarantee codes have been stored in correspondence thereto for everydata received from the host computer 1. As indicated in FIG. 6 at (c),in the case where certain data is read out from the remote disk, theguarantee code judging unit 116 retrieves the guarantee code managementtable 117 while a logical address of such a data to be read is used as aretrieve key so as to read out the relevant guarantee code (GC(L)). Theguarantee code judging unit 116 compares the remote-side guarantee code(GC(R)) with the local-side guarantee code (GC(L)), which have beenacquired in this manner. Then, when both the remote-side/local-sideguarantee codes are coincident with each other, the guarantee codejudging unit 116 can guarantee the data; whereas, when both theremote-side/local-side guarantee codes are not coincident with eachother, the guarantee code judging unit 116 issues an error notification.The present invention is not limited only to the above-explainedrespective process operations wherein the producing operation and thecomparing operation of the guarantee codes are executed within the cachecontroller 110. For instance, these process operations may bealternatively executed by the MPU 21 by way of an interrupt processoperation. Alternatively, setting of a guarantee code may be carried outin the disk control unit 24, producing of a remote-side guarantee codemay be carried out by the channel control unit 22, and the comparing ofboth the guarantee codes may be executed by the MPU 21. Furthermore, theinvention is not limited only to a case in which the guarantee codemanagement table 117 is provided in the cache memory 26. Alternatively,for example, a disk which is exclusively used for guarantee codes may beprovided to hold the guarantee code management table 117.

The flow of operations of the above-described process will now bedescribed based upon a time chart of FIG. 7. First, the host computer 1transmits a data writing request to the local disk system 10 via the SAN3 (S11). This data writing request contains both data to be written anda position (logical address) at which the data should be written. Thelocal disk system 10 produces a guarantee code based upon the datawriting request issued from the host computer 1 (S12), and then itregisters the produced guarantee code into the guarantee code managementtable 117 (S13).

Next, in response to the data writing request received from the hostcomputer 1, the local disk system 10 requests a data writing operationwith respect to the remote disk system 40 (S14). This data writingrequest contains both the data to be written and the logical address atwhich the data should be written, but does not contain the guaranteecode produced in step S12. The remote disk system 40 stores the datareceived via the SAN 3 from the local disk system 10 into the cachememory 56, and stores the data which has been stored in the cache memory56 at a predetermined position of the disk device group 60 (S15). Then,the remote disk system 40 sends a notification that the data storingoperation at the designated logical address has been accomplished to thelocal disk system 10 (S16). When the local disk system 10 receives thewriting operation completion notification from the remote disk system40, the local disk system 10 reports that the data writing operation hasbeen completed to the host computer 1 (S17). As a consequence, in thisembodiment, the data transfer operation to the remote disk system 40-iscarried out in synchronism with the write completion notifying operationto the host computer 1.

In a case in which the host computer 1 reads predetermined data from theremote disk and utilizes the read data, the host computer 1 transmits adata reading request to the local disk system 10 (S18). The local disksystem 10 requests the remote disk system 40 to read the data inresponse to the data reading request sent from the host computer 1(S19). In response to the data reading request issued from the localdisk system 10, the remote disk system 40 reads out data stored at apredetermined logical address of the remote disk (S20), and then, ittransmits the read data to the local disk system 10 (S21).

When the local disk system 10 receives the data from the remote disksystem 40, the local disk system 10 produces a remote-side guaranteecode based upon this received data (S22). The local disk system 10compares the local-side guarantee code which has been stored in theguarantee code management table 117 in S13 with the remote-sideguarantee code produced in the S22 (S23). Then, in case the local-sideguarantee code is coincident with the remote-side guarantee code, thelocal disk system 10 judges that the data read from the remote disksystem 40 is normal data, and it then transmits this read data via theSAN 3 to the host computer 1 (S24). On the other hand, in a case inwhich the remote-side guarantee code is not coincident with thelocal-side guarantee code, the local disk system 10 executes an errorprocessing operation (S25). As the error processing operation, forinstance, a process operation may be carried out in which the normaldata stored in the local disk is again copied to the remote disk.

Even in the storage system of this embodiment with employment of theabove-described arrangement, since the data guarantee process operationby the remote disk system 40 is carried out by the local disk system 10,a similar effect to that of the above-explained embodiment can beachieved. In addition thereto, in this embodiment, since the storagesystem is arranged in such a manner that the guarantee code whichoriginated from the data is produced and the local-side guarantee codeis compared with the remote-side guarantee code, the data guaranteeprocess operation can be carried out with a higher reliability. Also,the guarantee code is produced and managed on the side of the local disksystem 10, and the local disk system 40 manages only the data, so thatnone of the functions provided on the side of the remote disk system 40need be completely changed, and the reliability of the storage systemcan be relatively readily improved.

Embodiment 3

Next, a third embodiment of the present invention will be explained withreference to FIG. 8 to FIG. 10. This embodiment is featured by the factthat a guarantee code and data are combined with each other in anintegral form, and the guarantee code is also held even on the side of aremote disk system 40.

FIG. 8 is a block diagram showing a major unit in which a cachecontroller 120 of a local disk system 10 is mainly employed. Similar tothe above-explained embodiment, both the channel control unit 22 and thedisk control unit 24 are omitted from this drawing. The cache controller120 is provided with a local disk writing unit 121, a remote diskwriting unit 122, a remote disk reading unit 123, a guarantee codesetting unit 124, a guarantee code extracting unit 125, and a guaranteecode judging unit 126.

In response to a data writing request issued from the host computer 1,the local disk writing unit 121 stores received data into the cachememory 26, and it stores data from the cache memory 26 via the diskcontrol unit 24 into a predetermined area of a disk device group 30. Theremote disk writing unit 122 is employed so as to copy data on a remotedisk of the remote disk system 40 based upon a data writing requestissued from the host computer 1. The remote disk reading unit 123 isemployed so as to read such a data which has been stored at apredetermined logical address of the remote disk. The guarantee codesetting unit 124 produces a guarantee code based upon data received fromthe host computer 1. Similar to the above embodiment, the guarantee codecorresponds to unique information that is capable of exclusivelyspecifying received data, and it is produced based upon an attribute ofthe received data.

The guarantee code produced by the guarantee code setting means 124 isregistered in the guarantee code management table 127 so as to bemanaged. Also, the guarantee code is entered from the guarantee codesetting means 124 to the remote disk writing unit 122. The remote diskwriting unit 122 causes the guarantee code to be related to the datareceived from the host computer 1 so that the received data is combinedwith the guarantee code in an integral form to produce “data with anattached guarantee code” which is transmitted to the remote disk system40. The remote disk system 40 recognizes the entire data with theattached guarantee code, which has been encapsulated, as data whichshould be written into the remote disk, and then holds this encapsulateddata with the attached guarantee code.

The guarantee code extracting unit 125 extracts only the guarantee codebased upon the data with the attached guarantee code which is read outfrom the remote disk by the remote disk reading unit 123. The guaranteecode judging unit 126 compares the local-side guarantee code which ismanaged in the guarantee code management table 127 with the guaranteecode which is extracted from the data with the attached guarantee codereceived from the guarantee code extracting unit 125. In a case in whichthe local-side guarantee code is coincident with the extracted guaranteecode, the guarantee code judging unit 126 can guarantee that the correctdata is read out from the remote disk. On the other hand, in the case,where the local-side guarantee code is not coincident with the extractedguarantee code, the guarantee code judging unit 126 sends an errormessage to the MPU 21.

As indicated in FIG. 9 at (a), data with an attached guarantee code, inwhich a guarantee code “GC(R))” has been related to data “Dl” so as tobe combined therewith in an integral form, has been stored in a remotedisk. Since both the received data and the guarantee code have beencombined with each other in an integral form in the data with theattached guarantee code, the data length of this data becomes longerthan the data length of the original received data. For example, in acase in which the data length of the received data corresponds to 512bits and the guarantee code corresponding to 8 bits, the data with theattached guarantee code has a data length of 520 bits at a minimum. Theguarantee code extracting unit 125 separates the remote-side guaranteecode GC(R) from the data so as to extract the remote-side guarantee codeGC(R). On the other hand, the guarantee code judging unit 126 reads alocal-side guarantee code “GC(L)” from the guarantee code managementtable 127 based upon a designated local address. The guarantee codejudging unit 126 executes the data guarantee operation instead of theremote disk system 40 by comparing the local-side guarantee code GC(L)with the remote-side guarantee code GC(R).

A description will be given of a flow of operations of the process withreference to the time chart of FIG. 10. First, the host computer 1transmits a data writing request to the local disk system 10 (S31). Inresponse to the data writing request, the local disk system 10 producesa guarantee code (S32), and then stores the produced guarantee code intothe guarantee code management table 127 in relation to the received data(S33). Next, the local disk system 10 requests a data writing operationwith respect to the remote disk system 40 (S34). As previouslyexplained, in this case, the data which is transmitted from the localdisk system 10 to the remote disk system 40 corresponds to data with theattached guarantee code such that the data received from the hostcomputer 1 is related to the guarantee code produced based upon thisreceived data and this received data, is combined with the producedguarantee code in an integral form.

When the remote disk system 40 receives the data with the attachedguarantee code, the remote disk system 40 holds this entire data as“received data”, and stores this received data from the cache memory 56via the disk control unit 54 to the disk device group 60 (S35). In thiscase, as explained above, the data size of the data with the attachedguarantee code is increased by the data size of the guarantee code whichis added on an integral manner. As a result, the effective storagecapacity of the data which can be stored in the remote disk system 40 islowered. Also, it is conceivable that there are many cases in which theformat of the remote-side disk device group 60 is not coincident withthe data size of the data with the attached guarantee code. As a result,the data with the attached guarantee code is stored in a new disk. Whenthe remote disk system 40 stores thereinto the data with the attachedguarantee code, the remote disk system 40 sends a writing operationcompletion report to the local disk system 10 (S36). Upon receipt of thewriting operation completion report, the local disk system 10 sends thedata writing operation completion report to the host computer 1 (S37).As a consequence, both the reporting of the writing operation completionto the host computer 1 and the remote copying operation are carried outin a synchronous mode.

Next, when the host computer 1 requests to read predetermined data bydesignating a logical address with respect to the local disk system 10(S38), the local disk system 10 requests to read the data with respectto the remote disk system 40 (S39). As a result, the remote disk system40 reads the data (data with attached guarantee code) at the designatedlogical address (S40), and transmits the data with the attachedguarantee code to the local disk system 10 (S41).

The local disk system 10 receives the data with the attached guaranteecode from the remote disk system 40, and extracts the guarantee codefrom this received data (S42). Then, the local disk system 10 comparesthe local-side guarantee code which has been registered in the guaranteecode management table 127 with the remote-side guarantee code which hasbeen separated/extracted from the data with the attached guarantee code(S43). Then, in a case in which the local-side guarantee code iscoincident with the remote-side guarantee code, the local disk system 10guarantees that the data has been read under normal conditions insteadof the remote disk system 40, and it transmits the data read from theremote disk to the host computer 1 (S44). On the other hand, in the casewhere the local-side guarantee code is not coincident with theremote-side guarantee code, the local disk system 10 executes an errorprocess operation (S45). As the error process operation, for example, aremote copying operation is again carried out.

Even in the storage system with employment of the above-explainedarrangement of this embodiment, since the data guarantee processingoperation of the remote disk system 40 can be carried out on the side ofthe local disk system 10, a similar effect to that of theabove-described embodiment can be achieved. In addition thereto, in thisembodiment, since not only the data, but also the guarantee code, arestored in the remote disk, the data can be guaranteed with a higherreliability.

Embodiment 4

Next, a fourth embodiment of the present invention will be describedwith reference to FIG. 11. This fourth embodiment is featured by thefact that data guarantee modes on the side of the remote disk system 40,which are processed on the side of the local disk system 10, instead ofthe remote disk system 40, can be selected.

FIG. 11 shows a process for selecting the data guarantee modes. First,in the case in which a data guarantee mode is set, or changed, a userselects a desirable data guarantee mode based upon a menu displayed on ascreen of the console 28 (S51). In this embodiment, four sorts ofguarantee modes have been previously prepared. That is to say, thefollowing four sorts of guarantee modes are prepared: a mode in which adata guarantee operation is not carried out (no guarantee mode); a firstguarantee mode A in which data written in the remote disk is immediatelyread so as to be compared; a second guarantee mode B in which aguarantee code is managed only by the local disk system 10; and a thirdguarantee mode C in which data with an attached guarantee code is storedin the remote disk.

In the case in which a plurality of remote disk systems are connected tothe local disk system 10, the user can select data guarantee modesrespectively with respect to each of the plural remote disk systems.Also, data guarantee modes which are different from each other for eachof the logical volumes may be alternatively selected.

In the case that the no guarantee mode is selected (S52), the local disksystem 10 does not execute the data guarantee operation on the side ofthe remote disk system 40 (S53). In the case in which the first dataguarantee mode is selected (S54), as previously described in connectionwith the first embodiment, the local disk system 10 immediately readsdata written in the remote disk (otherwise, cache memory 56) andcompares this read data with data held in the local disk (otherwise,cache memory 26), so that a data guaranteeing operation on the side ofthe remote disk system 40 can be realized by the local disk system 10instead of the remote disk system 40 (S55).

When the second data guarantee mode is selected (S56), as described inconnection with the second embodiment, the local disk system 10 performsa data guaranteeing operation instead of the remote disk system 40 insuch a way that a guarantee code is produced based upon data receivedfrom the host computer 1, and the produced guarantee code is managedonly by the local disk system 10 (S57). In the case in which the thirddata guaranteeing mode is selected (S58), as described in connectionwith the third embodiment, the local disk system 10 executes a dataguarantee operation instead of the remote disk system 40 by which datawith an attached guarantee code is stored in the remote disk (S59).

As previously explained, in this embodiment, any one or a plurality ofdata guarantee modes can be selected from a plurality of data guaranteemodes which have been previously prepared. As a consequence, a properdata guarantee mode can be selected by considering the processingcapability and the installed memory capacity of the local disk system10, or by considering the structure of the remote disk system 40 and theoperating method of the entire storage system. As a result, thereliability of the storage system under a hetero-environment can beincreased by employing a simple structure, and the storage system can beoperated in a more flexible and pliable manner, so that the useroperability of the storage system can be improved.

Embodiment 5

FIG. 12 is a time chart showing the overall operation of a storagesystem according to a fifth embodiment of the present invention. In thisembodiment, an asynchronous process is carried out. In other words, whenthe local disk system 10 receives a data writing request from the hostcomputer 1 (S11), the local disk system 10 stores the received, datainto the local disk and also produces a guarantee code (S12), and then,it registers the produced guarantee code into the guarantee codemanagement table 127 (S13). Then, the local disk system 10 sends awriting operation completion report to the host computer 1 before thelocal disk system 10 copies the data to the remote disk (S17A). In FIG.12, the local disk system 10 sends the writing operation completionreport to the host computer 1 just after the guarantee code has beenstored. Alternatively, the local disk system 10 may transmit the writingoperation completion report to the host computer 1 at another differenttiming. Also, even in the time chart of FIG. 10, similar to FIG. 12, theasynchronous processing operation may be carried out.

It should be noted that the present invention-is not limited only to theabove-described respective embodiments. Various changes and variousadditions may be readily made within the technical scope of the presentinvention by one skilled in the art.

1. A storage system in which a main storage system is connected to asub-storage system, the sort of which is different from the sort of saidmain storage system, for transmitting/receiving data between an uppergrade apparatus and said storage system, wherein, said main storagedevice system comprises: receiving means for receiving a data writingrequest from said upper grade apparatus; data holding means for holdingdata which is required to be written in response to said received datawriting request; transferring means for transferring the data which isrequired to be written to the side of said sub-storage system inresponse to said received data writing request, and data guaranteeingmeans for guaranteeing whether or not said data held on the side of saidsub-storage system corresponds to correct data.
 2. A storage system asclaimed in claim 1, wherein said sub-storage system is not provided witha data guarantee function which can be utilized from said main storagesystem.
 3. A storage system as claimed in claim 1, wherein said dataguaranteeing means executes a data guaranteeing operation in such amanner that said data which has been transferred to said sub-storagesystem is read out from said sub-storage device system, and said readdata is compared with the data held in said data holding means.
 4. Astorage system as claimed in claim 1, wherein said data guaranteeingmeans comprises: guarantee code producing means for producing aguarantee code based upon data which is required to be written in thecase in which said receiving means receives said data writing request;guarantee code holding means for holding said produced guarantee code;extracting means for extracting a guarantee code based upon the dataread out from said sub-storage device system; and comparing means forperforming a data guaranteeing operation by comparing the guarantee codeheld by said guarantee code holding means with the guarantee codeextracted by said extracting means.
 5. A storage system as claimed inclaim 1, wherein said data guaranteeing means comprises: guarantee codeproducing means for producing a guarantee code based upon the data whichis required to be written in the case in which said receiving meansreceives said data writing request; guarantee code holding means forholding said produced guarantee code; data-attached-with-guarantee codetransferring means operated in such a manner that, while both saidproduced guarantee code and said data which is required to be writtenare related to each other as data with an attached guarantee code, thedata with the attached guarantee code is transferred to said sub-storagesystem by said transferring means; extracting means for extracting theguarantee code from said data with the attached guarantee code read outfrom said sub-storage system; and comparing means for executing a dataguarantee operation by comparing the guarantee code held by saidguarantee code holding means with the guarantee code extracted by saidextracting means.
 6. A storage system as claimed in claim 5, whereinsaid data with the attached guarantee code is constituted In such amanner that said data with the attached guarantee code is recognized asdata which is required to be written by said sub-storage system.
 7. Astorage system as claimed in claim 1, wherein said storage systemcomprises, data guarantee selecting means for controlling the operationof said data guaranteeing means.
 8. A storage system as claimed in claim7, wherein said data guaranteeing means is provided with a plurality ofdata guarantee modes, and said data guarantee selecting means selects atleast any one of said plural data guarantee modes.
 9. A storage systemas claimed in claim 8, wherein said data guaranteeing means is providedwith at least two, or more guarantee modes among: (1) a first guaranteemode for executing a data guaranteeing operation in such a manner thatthe data which is required to be written is transferred to saidsub-storage system so as to beheld therein, said data held in saidsub-storage system is read out, and said read data is compared with thedata held in said main storage device system; (2) a second guaranteemode for performing a data guaranteeing operation in such a manner thatthe guarantee code produced based upon said data which is required to bewritten is held in said main storage system, and the guarantee codeextracted from the data read out from said sub-storage system iscompared with the guarantee code held in said main storage system; and(3) a third guarantee mode for executing a data guaranteeing operationin such a manner that the guarantee code produced based upon the saiddata which is required to be written is held in said main storagesystem, data with an attached guarantee code, which is constituted byrelating said guarantee code to said data, is transferred to saidsub-storage device system so as to be held therein, and the guaranteecode which is extracted from said data with the attached guarantee coderead out from said sub-storage system is compared with the guaranteecode held in said main storage system.
 10. A storage system in which aplurality of different sorts of storage device systems are mixed witheach other, and support functions thereof related to data input/outputoperations are different from each other, wherein: a storage devicesystem having a high function among said plural sorts of storage devicesystems, executes a predetermined support function for a storage devicesystem having a low function among said plural sorts of storage devicesystems instead of said storage device system having the low function.11. A storage system as claimed in claim 10, wherein said storage devicesystem having the high function comprises: judging means for judging asto whether or not a predetermined event for executing said predeterminedsupport function happens to occur; and substituting process meansoperated in such a manner that in the case in which said judging meansjudges that said predetermined event happens to occur, saidpredetermined support function is executed by said storage device systemhaving the high function instead of said storage device having the lowfunction.
 12. A storage system as claimed in claim 11, wherein saidsubstituting process means executes said predetermined support functionby way of either a synchronous processing operation or an asynchronousprocessing operation.
 13. A storage system as claimed in claim 11,wherein said substituting process means executes said predeterminedsupport function without adding redundant data to the data related tosaid predetermined support function, or by adding redundant data, whichhas originated from said data related to said predetermined supportfunction, to said data related to said predetermined support function.14. A storage system as claimed in claim 11, wherein said storage systemfurther comprises: selecting means for selecting Operation modes of thesubstitution process operations of said predetermined support functionprovided by said substituting process means.
 15. A storage device systemconnected to an upper grade apparatus and different sorts of storagedevice systems respectively, wherein said storage device system iscomprises: receiving means for receiving a data writing request fromsaid upper grade apparatus; data holding means for holding data which isrequired to be written in response to said received data writingrequest; transferring means for transferring data which is required tobe written to the side of said different sorts of storage device systemsin response to said received data writing request; and data guaranteeingmeans for guaranteeing whether or not said data held on the side of saiddifferent sorts of storage device systems corresponds to correct data.16. A storage device system as claimed in claim 15, wherein said dataguaranteeing means executes a data guaranteeing operation in such amanner that said data which has been transferred to said different sortsof storage device systems are read out from said different sorts ofstorage device systems, and said read data are compared with the dataheld in said data holding means.
 17. A storage device system as claimedin claim 15, wherein said data guaranteeing means comprises: guaranteecode producing means for producing a guarantee code based upon the datawhich is required to be written in the case in which said receivingmeans receives said data writing request; guarantee code holding meansfor holding said produced guarantee code; extracting means forextracting a guarantee code based upon the data read out from saiddifferent sorts of storage device systems; and comparing means forperforming a data guaranteeing operation by comparing the guarantee codeheld by said guarantee code holding means with the guarantee codeextracted by said extracting means.
 18. A storage device system asclaimed in claim 15, wherein said data guaranteeing means comprises:guarantee code producing means for producing a guarantee code based uponthe data which is required to be written in the case in which saidreceiving means receives said data writing request; guarantee codeholding means for holding said produced guarantee code;data-attached-with-guarantee-code transferring means operated in such amanner that, while both said produced guarantee code and said data whichis required to be written are related to each other as data with anattached guarantee code, the data with the attached guarantee code istransferred and held to said different sorts of storage device systemsby said transferring means; extracting means for extracting theguarantee code from said data with the attached guarantee code read outfrom said different sorts of storage device systems; and comparing meansfor executing a data guarantee operation by comparing the guarantee codeheld by said guarantee code holding means with the guarantee codeextracted by said extracting means.
 19. A program for controlling astorage system connected to an upper grade apparatus and comprisingdifferent sorts of storage device systems, wherein said programrealizes: a local-sided holding function by which, in response to a datawriting request received from said upper grade apparatus, data which isrequired to be written is held in storage means; a transferring functionby which, in response to said received data write request, said datawhich is required to be written is transferred to said different sortsof storage device systems so as to be held therein; and a dataguaranteeing function for guaranteeing as to whether or not said dataheld in said different sorts of storage device systems corresponds tocorrect data.